Salary is 180k to 200k
Hybrid position
Seeking a C++ Developer with an in-depth understanding of Object-Oriented Programming (OOP), design patterns, data structures, algorithms, and concurrency. The ideal candidate will be responsible for developing robust, efficient, and scalable software solutions, while also contributing to the architectural design and optimization of our systems. You will work closely with cross-functional teams to deliver high-quality, maintainable code that meets both technical and business requirements.
Financial services is a plus.
Key Responsibilities:
- Software Development: Design, develop, and maintain complex software applications using C++.
- Object-Oriented Programming: Apply OOP principles to build modular, reusable, and maintainable code.
- Design Patterns: Leverage design patterns (e.g., Factory, Singleton, Observer, etc.) to solve complex software engineering challenges and improve code maintainability and extensibility.
- Algorithms and Data Structures: Implement efficient algorithms and data structures to handle large-scale, performance-sensitive tasks.
- Concurrency: Work with multi-threading, parallelism, and synchronization techniques to build highly performant, concurrent systems.
- Code Optimization: Identify and optimize performance bottlenecks through profiling, benchmarking, and refactoring code.
- Collaboration: Work closely with team members, including other developers, testers, and product managers, to define system architecture and ensure alignment with business goals.
- Testing and Debugging: Write unit tests, conduct code reviews, and ensure the delivery of high-quality, bug-free code.
- Documentation: Maintain clear and comprehensive technical documentation for both developers and users.
Required Skills & Qualifications:
- Extensive C++ experience in software development with a focus on OOP principles.
- In-depth understanding of data structures (e.g., arrays, lists, trees, graphs, hash maps) and algorithms (e.g., sorting, searching, dynamic programming, graph algorithms).
- Strong familiarity with design patterns (e.g., Factory, Strategy, Observer, Adapter, etc.) and their real-world application.
- Experience with concurrency and parallel programming, including multi-threading, synchronization, and thread safety.
- Proficiency in C++11/14/17/20 features and advanced concepts, such as smart pointers, lambda expressions, and move semantics.
- Strong problem-solving skills, with the ability to break down complex problems into manageable components.
- Experience with debugging and performance profiling tools.
- Solid understanding of memory management, including pointers, references, and low-level memory optimization.
- Familiarity with version control systems (e.g., Git).
- Strong written and verbal communication skills, with the ability to articulate complex technical concepts to both technical and non-technical stakeholders.